﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections.Generic;
using MySql.Data.MySqlClient;


public class PratoDAO
{
    MySqlConnection connection = Database.getInstance.getConnection();

    public PratoDAO()
    {

    }

    public List<PratoDTO> getMaisBaratos()
    {
        try
        {
            MySqlCommand command = connection.CreateCommand();
            MySqlDataReader reader;

            command.CommandText = "SELECT p.idprato, f.caminho, p.observacao, p.nome, p.preco, p.tempo_de_preparo, p.quantidade_porcao, p.cardapio_idcardapio, p.estabelecimento_idestabelecimento, p.nome as nome_prato, e.nome as nome_estabelecimento " +
                                  "FROM prato p " +
                                  "INNER JOIN cardapio c ON c.idcardapio = p.cardapio_idcardapio " +
                                  "INNER JOIN estabelecimento e ON e.idestabelecimento = p.estabelecimento_idestabelecimento " +
                                  "INNER JOIN prato_has_foto pf ON pf.prato_idprato = p.idprato " +
                                  "INNER JOIN foto f ON f.idfoto = pf.foto_idfoto " +
                                  "ORDER BY p.preco ASC " +
                                  "LIMIT 0, 6";
                                 

            connection.Open();

            List<PratoDTO> Prato_List = new List<PratoDTO>();

            reader = command.ExecuteReader();
            while (reader.Read())
            {
                PratoDTO prato = new PratoDTO();
                prato.Cardapio_idcardapio = Convert.ToInt32(reader["idprato"]);
                prato.Nome = (String)reader["nome_prato"];
                prato.Observacao = (String)reader["observacao"];
                prato.Preco = Convert.ToDouble(reader["preco"]);
                prato.Tempo_de_preparo = (String)reader["tempo_de_preparo"];
                prato.Quantidade_porcao = (String)reader["quantidade_porcao"];
                prato.Cardapio_idcardapio = Convert.ToInt32(reader["cardapio_idcardapio"]);
                prato.Estabelecimento_idestabelecimento = Convert.ToInt32(reader["estabelecimento_idestabelecimento"]);
                prato.Caminho = (String)reader["caminho"];
                prato.Estabelecimento = (String)reader["nome_estabelecimento"];
                Prato_List.Add(prato);
            }
            connection.Close();
            return Prato_List;
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }
}
